#ifndef CHATWINDOW_H
#define CHATWINDOW_H

#include <QWidget>
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include <QListWidget>
#include <QTextEdit>
#include <QDir>
#include <QLineEdit>
#include "entity/Contact.h"
#include "item/ContactItem.h"
#include "entity/Message.h"
#include "item/MessageItem.h"

class ChatWindow : public QWidget
{
    Q_OBJECT
public:
    explicit ChatWindow(QWidget *parent = nullptr);
    ~ChatWindow();
    void initUI();
    void addTestContacts();
    void addMessageToChat(const Message &message);
    void loadChatHistoryForContact(int contactId);

public slots:
    void sendMessage();
    void onContactSelected(QListWidgetItem *item);

private:
    QList<QListWidgetItem *> m_itemWidgets; // 消息列表
    QHBoxLayout *m_hboxLayout;              // 水平布局
    QListWidget *m_contactList;             // 联系人列表
    QWidget *m_chatArea;                    // 聊天窗口
    QVBoxLayout *m_vboxLayout;              // 聊天窗口布局
    QListWidget *m_chatMessages;            // 消息显示区
    QTextEdit *m_messageInput;              // 消息输入框
    QPushButton *m_sendButton;              // 发送按钮
    QHBoxLayout *m_inputLayout;             // 消息输入区
    int m_currentContactId;                 // 当前选中的联系人ID

signals:
};

#endif // CHATWINDOW_H
